// package hn.cch.security;
//
// import hn.cch.constant.StatusConstant;
// import hn.cch.service.UserService;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.security.authentication.AccountExpiredException;
// import org.springframework.security.authentication.DisabledException;
// import org.springframework.security.authentication.LockedException;
// import org.springframework.security.core.AuthenticationException;
// import org.springframework.security.core.GrantedAuthority;
// import org.springframework.security.core.authority.AuthorityUtils;
// import org.springframework.security.core.userdetails.UserDetailsService;
// import org.springframework.security.core.userdetails.UsernameNotFoundException;
// import org.springframework.stereotype.Component;
//
// import java.util.List;
// import java.util.Objects;
//
// @Component
// public class UserDetailsServiceImpl implements UserDetailsService {
//
//     @Autowired
//     private UserService userService;
//
//     @Override
//     public UserDetailsImpl loadUserByUsername(String mobile) throws AuthenticationException {
//
//         String[] roles = {"admin"};
//         List<GrantedAuthority> authorityList = AuthorityUtils.createAuthorityList(roles);
//
//         UserDetailsImpl userDetails = userService.getUserDetails(mobile);
//         if (Objects.nonNull(userDetails)){
//             //
//             if (userDetails.isAccountNonLocked()){
//                 throw new LockedException("用户被锁定");
//             }
//
//             if (false){
//                 throw new DisabledException("用户被禁用");
//             }
//
//             if (false){
//                 throw new AccountExpiredException("用户已过期");
//             }
//             //
//
//             userDetails.setAuthorities(authorityList);
//         }else {
//             // 用户不存在
//             throw new UsernameNotFoundException("用户不存在");
//         }
//         return userDetails;
//     }
// }
